QBASIC是
BASIC(Beginner's All-purpose Symbolic Instruction Code,初学者通用指令代码)语言的一个变种,由美国微软公司开发,
1991年随
MS-DOS 5.0推出。它不能被编译成独立的
可执行文件,
源代码在
集成开发环境(IDE)中先被编译成
中间代码,然后中间代码在IDE中被
解释执行。它被设计用来代替
GW-BASIC,并被集成在MS-DOS 5.0及其更高版本(包括
Windows 95)中。QBASIC基于
微软稍早推QuickBASIC 4.5,但去掉了后者的编译和链接部分。
现状和特点
微软在较新版本的Windows中不再集成
QBASIC。不过
Windows 98的
用户可以在
光盘\TOOLS\OLDMSDOS目录中找到它,在Windows 95的光盘中,它存放在\OTHER\OLDMSDOS目录中。微软网站对它的技术支持只对MS-DOS的授权用户有效。
QBASIC拥有一个值得称道的
集成开发环境和一个功能强大的集成调试器,这一切在那个时代让人耳目一新。直到今天,QBASIC依然是许多面向初学者的编程书籍的
主题。
改进
和Quick BASIC类似而又不同于
微软其他
BASIC的早期实现版本的是,
QBASIC是一种结构化的
编程语言。和
GW-BASIC相比,QBASIC的主要改进是:
子程序和函数作为单独的模块
不需要行号
注:Quick BASIC简称QB,是一种编译型的语言;
qbasic是一种解释型的语言,和Quick BASIC拥有一样的语法。同时,为了省时间,QBASIC中的PRINT 语句可以直接用?来代替。
常见语法
条件语句
行
if语句: IF 条件 THEN 语句组 ELSE 语句组2
块if语句
IF 条件 THEN
语句组
ELSE
语句组2
END IF
IF 语句还可如此运用
IF 条件 THEN
语句组
ELSEIF 条件 THEN
语句组2
END IF
SELECT CASE 变量或字符串
CASE 情况1
语句组
CASE 情况2
语句组2
END SELECT
循环结构语句
1.计数循环
for
控制变量=初值 to 终值
step语句可有可无,若没有step语句,则步长为+1
语句体
next 控制变量
其格式有两种:
(1)
WHILE 条件
WEND
(2)
DO WHILE 条件
循环体
LOOP
3.直到型循环
DO
循环体
LOOP UNTIL 条件
基本语句
CLS:即Clean the screen,清屏幕
或者“,”改为“;”,改完之后输入时会多出一个“?”
输出语句:print “显示的内容”,变量名表1,“显示的内容”,变量名表2……
把,改为;时,两个内容间空1格,否则空14格左右,最后不加
分号为换行。
赋值语句: 被
赋值变量=
表达式 'let 可有可无
代码示例(赋值,求和运算,并显示结果)
A=10
B=20
C=A+B
Print C
END
变量
数:如15%、-32768、215654#、2.0158e+15、8.545646d+20、-18.75等,
变量名为例如a的变量名
字符串:如“15%”、“abc”等,变量名为例如a$的变量名
补充:在QB中还可以几何画图,具体用法如下(详见QB内部帮助)
SCREEN 12'639*479 16色图形模式
CIRCLE(100,150),10,4'在x坐标100与y坐标150处画一个半径为10的颜色为4(红色)的圆。
SYSTEM
简单的双重循环在冒泡排序程序的运用
CLS
DIM n AS INTEGER
INPUT n
DIM a(n)
FOR i = 1 TO n
INPUT a(i)
NEXT i
FOR i = 1 TO n
FOR j=1 TO i-1
IF a(j) > a(j+1) THEN SWAP a(j), a(j+1)
NEXT j
NEXT i
FOR i = 1 TO n
PRINT a(i)
NEXT i
END
几种常见的运算语句及函数
加运算:
AB之和=A+B
差运算:
AB之差=A-B
乘运算:
AB之积=A*B
除运算
AB商=A/B
A的B次方=A^B
开方运算
A开方=SQR(A)
交换变量
SWAP 值A,值B
初学者的练习题
1、输入20个数,求出它们的最大值、最小值和平均值。
2、在1——500中,找出能同时满足用3除余2,用5除余3,用7除余2的所有整数;
3、如果一个数从左边读和右边读都是同一个数,就称为
回文数,例如686就是一个回文数?喑糖?000以内所有的回文数。
4、已知数列1、5、12、22、35、...?求出第20个数
7、输入20个整数,统计其中正、负和零的个数;
8、输出1——999中能被3整除,且至少有一位数字是5的数;
9、有一个六位数,其个位数字7,现将个位数字移至首位(十万位),而其余各位数字顺序不变,得到一个新的六位数,假如新数为旧数的4倍,求原来的六位数。
10、有这样的一个六位数字labcde,将其乘以3后变成abcdel,编程求这个数。
1-1/3+1/5-1/7+……直到某一项的绝对值小于10的-6次方
附加:
我们用一个正整数列来表示一段地方的高度,当一段地方的高度为一个逐一上升的序列时,
我们称它为一个阶梯,例如 4、5、6、7、8 是一个长度为 5 的阶梯。给定一个正整数列,
请找出它第一个最长的阶梯,并将其输出。如果一个阶梯也没有,输出“No”。
运行结果示例:
请输入数列的长度:8
请输入数列:2 3 2 3 4 4 5 6
结果为 2 3 4
快捷键
Ctrl+C+Break:中断正在运行的程序;
F5:运行程序;
Shift+F5:从第一条语句开始重新运行程序;
F4:当程序中断运行时,查看运行结果屏幕,再按一次F4则切换回代码屏幕;
F1:获得帮助。
F9:断点(同QB stop 语句,按F5继续运行)
范例
【1】菜场上一公斤香菇是7.5元,编一个程序,从键盘上输入重量,计算机自动算出其总价
INPUT X
zj=7.5*X
PRINT zj
END
【2】高精度乘法程序
CLS
INPUT a$
INPUT b$
la = LEN(a$)
lb = LEN(b$)
lc = la + lb
DIM a(la), b(lb), c(lc)
FOR i = 1 TO la
a(i) = VAL(MID$(a$, la + 1 - i, 1))
NEXT i
FOR i = 1 TO lb
b(i) = VAL(MID$(b$, lb + 1 - i, 1))
NEXT i
FOR i = 1 TO la
FOR j = 1 TO lb
x = a(i) * b(j): w = i + j - 1
c(w) = c(w) + x MOD 10
c(w) = c(w) MOD 10
NEXT j
NEXT i
DO WHILE c(lc) = 0
lc = lc - 1
LOOP
FOR i = lc TO 1 STEP -1
NEXT i
END